#include <bits/stdc++.h>
using namespace std;

int main()
{
	ios::sync_with_stdio(false); // 关闭IO同步
	cin.tie(nullptr), cout.tie(nullptr);

	int n;
	cin >> n;
	vector<vector<int>> cost(n, vector<int>(n));
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cin >> cost[i][j];
		}
	}
	vector<vector<int>> dp(1 << n, vector<int>(n, INT_MAX));
	dp[1][0] = 0;
	for (int mask = 1; mask < (1 << n); mask++)
	{
		for (int u = 0; u < n; u++)
		{
			if (dp[mask][u] == INT_MAX)
				continue;
			for (int v = 1; v < n; v++)
			{
				if (!(mask & (1 << v)))
				{
					int new_mask = mask | (1 << v);
					dp[new_mask][v] = min(dp[new_mask][v], dp[mask][u] + cost[u][v]);
				}
			}
		}
	}

	int res = INT_MAX;
	for (int u = 1; u < n; u++)
	{
		res = min(res, dp[(1 << n) - 1][u] + cost[u][0]);
	}
	cout << res << endl;

	return 0;
}
// 64 位输出请用 printf("%lld")